﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Ferreteria.Forms.GestionAutorizaciones
{
    public partial class frmGestionAutorizaciones : Form
    {
        DisancoEntities context;

        public frmGestionAutorizaciones()
        {
            InitializeComponent();

            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);

            dgvAutorizaciones.DataSource = context.Autorizaciones.Where(a => a.autorizacion_estado == true);
        }

        private void btnRegistrarAutorizacion_Click(object sender, EventArgs e)
        {
            frmRegistrarAuthorizacion auth = new frmRegistrarAuthorizacion();
            DialogResult dr = auth.ShowDialog();

            if (dr == System.Windows.Forms.DialogResult.OK)
            {
                context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);
                dgvAutorizaciones.DataSource = context.Autorizaciones.Where(a => a.autorizacion_estado == true);
            }
        }

        private void btnDehabilitarAutorizacion_Click(object sender, EventArgs e)
        {
            DialogResult dr = MessageBox.Show("¿Seguro que desea deshabilitar esta autorizacion?\n\nEsta operacion no puede deshacerse", "Confirme la operación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dr == System.Windows.Forms.DialogResult.Yes)
            {
                try
                {
                    int aut_id = (int)dgvAutorizaciones.CurrentRow.Cells["autorizacionid"].Value;

                    var autorizacion = context.Autorizaciones.FirstOrDefault(a => a.autorizacion_id == aut_id);

                    autorizacion.autorizacion_estado = false;

                    context.SaveChanges();
                    MessageBox.Show("Autorizacion anulada con éxito", "Operación exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    dgvAutorizaciones.DataSource = context.Autorizaciones.Where(a => a.autorizacion_estado == true);
                }
                catch (Exception er)
                {
                    MessageBox.Show(er.Message);
                }
            }
        }
    }
}
